
import nw from "nw-lafjs";
import {fail, ok} from "@/utils/responseUtil";

export default async function (ctx: FunctionContext) {
  let body = ctx.body
  let userId = ctx.user.admin
  /**
   * {
   * skuId:"",
   * skuNum:1
   * }
   */
  if (nw.util.isNull(body.skuId)||nw.util.isNull(body.skuNum)){
    return fail("参数不合法")
  }
  //查询skuInfo
  let skuInfo = await nw.db.findById({
    dbName:"skuInfo",
    id:body.skuId
  })
  if (nw.util.isNull(skuInfo)){
    return fail("商品不存在")
  }
  //查询skuID是否第一次添加入购物车
  let skuCart = await nw.db.findByWhereJson({
    dbName:"cartInfo",
    whereJson:{deleted:0,userId:userId,skuId:body.skuId,status:1}
  })
  if (nw.util.isNull(skuCart)){
    //1.第一次添加
    let cartInfo = {
      userId:userId,
      categoryId:skuInfo.categoryId,
      skuType:skuInfo.skuType,
      skuName:skuInfo.skuName,
      skuId:skuInfo._id,
      cartPrice:skuInfo.price,
      skuNum:body.skuNum,
      perLimit:skuInfo.perLimit,
      imgUrl:skuInfo.imgUrl,
      isChecked:1,
      status:1,
      wareId:skuInfo.wareId,
      updateTime:new Date(),
      createTime:new Date(),
      deleted:0
    }
    let id = await nw.db.add({
      dbName:"cartInfo",
      dataJson:cartInfo
    })
    if (nw.util.isNull(id)){
      return fail("添加失败")
    }
    return ok("添加成功")
  }else {
    //第二次加入了
    let num = await nw.db.update({
      dbName:"cartInfo",
      whereJson:{_id:skuCart._id},
      dataJson:{skuNum:skuCart.skuNum+body.skuNum}
    })
    if (num===0){
      return fail("添加失败")
    }
    return ok("添加成功")
  }
}
